#ifndef LEVELTEST_H
#define LEVELTEST_H

//#include "Resource.h"
#include "Map.h"
#include "ShaderEffect.h"

class LevelTest
{
	private:
								 ///Camera
		Camera * camera;
								 ///Directx Device needed for rendering.
		LPDIRECT3DDEVICE9 d3ddev;
								 ///Levels game objects resource manager
		Resource * levelResource;
								 ///Shader Effects
		std::vector<ShaderEffect *> shaders;
								 ///Physics World
		b2World * world_physics;

	public:
						///Constrcutor
		LevelTest(LPDIRECT3DDEVICE9 d3ddev);
						///Destructor
		~LevelTest();
		void SetLevelCamera(Camera * camera=NULL);
								 ///Builds level layout with objects positioned
		void BuildLevel();
								 ///Renders all objects in the level
		void Render();
								 ///Zoom Control
		void SetZoom(float zoom);
								 /// Ptr to mainCharacter Data And Add it into the level
		void AddMainCharacter(Entity * mainCharacter);
								 /// Ptr to the levels world physics
		b2World * GetWorldPhysics();
								 /// Number of objects
		int	NumberOfObjectsInScene(){ return levelResource->NumberOfObjects();}
								 /// Number of culled objects
		int NumberOfCulledObjects(){ return levelResource->TotalCulledObjects();}

		
};

#endif